package com.example.his.api.db.dao;

import com.example.his.api.db.pojo.OrderEntiy;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

/**
 * @author myname
 * @description 针对表【tb_order(订单表)】的数据库操作Mapper
 * @createDate 2024-06-03 23:28:12
 * @Entity generator.domain.OrderEntiy
 */
public interface OrderDao {
  //  查询客户订单统计数据
  public HashMap searchFrontStatistic(int customerId);
  
  //  查询用户当天未付款订单数量和退款订单数量
  public Boolean searchIllegalCountInDay(int customerId);
  
  public int closeOrder();
  
  //  新增订单
  public int insert(OrderEntiy orderEntiy);
  
  //  更新订单付款状态
  public int updatePayStatus(Map param);
  
  //   根据订单流水号查询主键值
  public Integer searchCustomerId(String outTradeNo);
  
  //    分页查询订单列表
  public ArrayList <HashMap> searchByPage(Map param);
  
  //  查新订单数量
  public long searchFrontsOrderCount(Map param);
  
  //  根据id查询退款单流水号
  public String searchAlreadyRefund(int id);
  
  //  根据id和用户id查询订单金额和付款单id
  public HashMap searchRefundNeeded(Map param);
  
  //  更新退款单流水号
  public int updateOutRefundNo(Map param);
  
  //  更新订单状态
  public int updateRefundStatusByOutRefundNo(String outTradeNo);
  
  //  更新订单状态
  public int updateRefundStatusById(Integer id);
  
  //  客户端查询订单分页记录和总数
  public ArrayList <HashMap> searchByPageOfMis(Map param);
  
  //  查询总数
  public long searchCount(Map param);
  
  //  MIS端删除已关闭的订单
  public long deleteById(int id);
  
  //  更新订单状态
  public int updateStatus(Map param);
  
  //  根据id关闭订单
  public int closeOrderById(int id);
  
  //  查询客户是否拥有某个订单
  public Integer hasOwnOrder(Map param);
  
  //  查询订单的提价预约记录已完成的数量是否等于体检套餐的数量
  public HashMap searchOrderIsFinished(String uuid);
}




